/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.sigodonto.view.managedbean;

import br.com.sigodonto.model.dao.DaoGenerico;
import br.com.sigodonto.model.entity.Clinica;
import br.com.sigodonto.model.entity.ItemEstoque;
import br.com.sigodonto.model.entity.Paciente;
import br.com.sigodonto.model.util.RelatorioUtil;
import br.com.sigodonto.model.util.SessionUtil;
import java.io.Serializable;
import java.util.HashMap;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;

/**
 *
 * @author Fidelis
 */
@ManagedBean
@ViewScoped
public class EmitirRelatorioGerencialMB implements Serializable{

    /**
     * Creates a new instance of EmitirRelatorioGerencialMB
     */
    private String tipo;
    private Clinica clinica;
    private DaoGenerico daoGenerico;

    public EmitirRelatorioGerencialMB() {
        FacesContext context = FacesContext.getCurrentInstance();
        this.clinica = SessionUtil.carregarClinica(context);
    }

    public String getTipo() {
        return tipo;
    }

    public void setTipo(String tipo) {
        this.tipo = tipo;
    }

    public void emitirRelatorio() {
        FacesMessage message = new FacesMessage();
        String msg = "RELATORIO EMITIDO COM SUCESSO!";
        message.setSeverity(FacesMessage.SEVERITY_INFO);


        if (!this.tipo.equals("nada")) {
            
            this.daoGenerico = new DaoGenerico();
            
            HashMap<String, Object> parameterMap = new HashMap<String, Object>();
            String logo = FacesContext.getCurrentInstance().getExternalContext().getRealPath("/resources/clinica/" + this.clinica.getLogo2());
            parameterMap.put("CLINICA_LOGO", logo);
            
            List colecao = null;
            String relatorio = null;
            if (this.tipo.equals("pacientes")) {
                colecao = this.daoGenerico.listarTodos(Paciente.class);
                relatorio = "gerencialPacientes.jasper";
            } else if (this.tipo.equals("estoque")) {
                colecao = this.daoGenerico.listarTodos(ItemEstoque.class);
                relatorio = "gerencialEstoque.jasper";
            }
            
            RelatorioUtil.gerarRelatorio(relatorio, parameterMap, colecao);
        } else {
            msg = "SELECIONE UM TIPO DE RELATORIO PARA SER GERADO!";
            message.setSeverity(FacesMessage.SEVERITY_ERROR);
        }
        
        this.tipo = "nada";
        
        message.setSummary(msg);
        FacesContext.getCurrentInstance().addMessage(null, message);
    }
}
